formatNum = function(f, digit) { 
    var m = Math.pow(10, digit); 
    return parseInt(f * m, 10) / m; 
} 
　var num1 = 0.05; 
　var num2 = 0.02;
//8 是保留位数
　console.log(formatNum(num1*num2, 8));

// 这个方法是什么意思呢？

// 为了避免产生精度差异，我们要把需要计算的数字乘以 10 的 n 次幂，换算成计算机能够精确识别的整数，然后再除以 10 的 n 次幂，大部分编程语言都是这样处理精度差异的，我们就借用过来处理一下 JS 中的浮点数精度误差。

// 所以如果下次再有人问你 0.1 + 0.2 等于几，你可要小心回答咯！！